机器学习(ML)管道中的组合优化(CO)层是解决数据驱动决策任务的强大工具,但它们面临两个主要挑战。首先,CO问题的解通常是其客观参数的分段常数函数。鉴于通常使用随机梯度下降对ML管道进行训练,因此缺乏斜率信息是非常有害的。其次,标准ML损失在组合设置中不能很好地工作。越来越多的研究通过各种方法解决了这些挑战。不幸的是,缺乏维护良好的实现会减慢采用CO层的速度。在本文的基础上,我们对CO层介绍了一种概率的观点,该观点自然而然地是近似分化和结构化损失的构建。我们从文献中恢复了许多特殊情况的方法,我们也得出了新方法。基于这个统一的观点,我们提出了inferpopt.jl,一个开源的朱莉娅软件包,1)允许将任何具有线性物镜的Co Oracle转换为可区分的层,以及2)定义足够的损失以训练包含此类层的管道。我们的图书馆使用任意优化算法,并且与朱莉娅的ML生态系统完全兼容。我们使用视频游戏地图上的探索问题来证明其能力。
translated by 谷歌翻译